package com.zycfc.zsf.boot.mq.common;

import com.zycfc.zsf.boot.util.text.*;

public class MqEnvConstants
{
    public String namespace;
    public String applicationName;
    public String errNotifyUrl;
    private static MqEnvConstants env;
    
    private MqEnvConstants(final String namespace, final String applicationName, final String errNotifyUrl) {
        this.namespace = namespace;
        this.applicationName = applicationName;
        this.errNotifyUrl = errNotifyUrl;
    }
    
    public static MqEnvConstants build(final String namespace, final String applicationName) {
        return build(namespace, applicationName, null);
    }
    
    public static MqEnvConstants build(final String namespace, final String applicationName, final String errNotifyUrl) {
        if (MqEnvConstants.env == null) {
            MqEnvConstants.env = new MqEnvConstants(namespace, applicationName, errNotifyUrl);
        }
        else if (!StringUtils.isEmpty(errNotifyUrl)) {
            MqEnvConstants.env.setErrNotifyUrl(errNotifyUrl);
        }
        return MqEnvConstants.env;
    }
    
    public static MqEnvConstants getInstance() {
        return MqEnvConstants.env;
    }
    
    public void setNamespace(final String namespace) {
        this.namespace = namespace;
    }
    
    public void setApplicationName(final String applicationName) {
        this.applicationName = applicationName;
    }
    
    public void setErrNotifyUrl(final String errNotifyUrl) {
        this.errNotifyUrl = errNotifyUrl;
    }
    
    public String getNamespace() {
        return this.namespace;
    }
    
    public String getApplicationName() {
        return this.applicationName;
    }
    
    public String getErrNotifyUrl() {
        return this.errNotifyUrl;
    }
    
    static {
        MqEnvConstants.env = null;
    }
}
